drm/vc4: Add an API for creating GPU shaders in GEM BOs.
authorEric Anholt <eric@anholt.net>
Mon, 30 Nov 2015 19:41:40 +0000 (11:41 -0800)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 17 Mar 2016 01:25:23 +0000 (01:25 +0000)
commit46b3a4eb087e63832b3e64526f383517fd8fab5b
tree3aab9094b68507bd389165fa3cfb046d1d51f838
parentf12d175e7b68fd86b05c81ccd8149b97092b7c41
drm/vc4: Add an API for creating GPU shaders in GEM BOs.

Since we have no MMU, the kernel needs to validate that the submitted
shader code won't make any accesses to memory that the user doesn't
control, which involves banning some operations (general purpose DMA
writes), and tracking where we need to write out pointers for other
operations (texture sampling).  Once it's validated, we return a GEM
BO containing the shader, which doesn't allow mapping for write or
exporting to other subsystems.

v2: Use __u32-style types.

Signed-off-by: Eric Anholt <eric@anholt.net>
Gbp-Pq: Topic features/arm/rpi
Gbp-Pq: Name drm-vc4-add-an-api-for-creating-gpu-shaders-in-gem-b.patch
drivers/gpu/drm/vc4/Makefile
drivers/gpu/drm/vc4/vc4_bo.c
drivers/gpu/drm/vc4/vc4_drv.c
drivers/gpu/drm/vc4/vc4_drv.h
drivers/gpu/drm/vc4/vc4_qpu_defines.h [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_validate_shaders.c [new file with mode: 0644]
include/uapi/drm/vc4_drm.h